package loja.model.handler.impl;

import loja.model.entity.produto.Categoria;
import loja.model.entity.produto.Produto;

public class ProdutoHandlerView extends
		AbstractHandlerViewEntity<Produto, String> {

	private final String ID = "idProduto";
	private final String NOME = "nome";
	private final String CATEGORIA = "categoria";

	public ProdutoHandlerView() {
		super(new Produto());
	}

	@Override
	public String getPrimaryKeyOfViewEntity() {
		return getEntity().getIdProduto();
	}


	@Override
	public void updateEntity() {

		String idProduto;
		String nome;
		Categoria categoria;

		if (propertyViews.containsKey(ID)) {
			idProduto = String
					.valueOf(propertyViews.get(ID).getPropertyValue());
			getEntity().setIdProduto(idProduto);
		}

		if (propertyViews.containsKey(NOME)) {
			nome = String.valueOf(propertyViews.get(NOME).getPropertyValue());
			getEntity().setNome(nome);
		}

		if (propertyViews.containsKey(CATEGORIA)) {
			categoria = (Categoria) propertyViews.get(CATEGORIA)
					.getPropertyValue();
			getEntity().setCategoria(categoria);
		}
		
		
	}

	@Override
	public void updateView() {
		
		String idProduto = getEntity().getIdProduto();
		String nome = getEntity().getNome();
		Categoria categoria = getEntity().getCategoria();
		
		if (propertyViews.containsKey(ID)) {
			propertyViews.get(ID).setPropertyValue(idProduto);
		}
		
		if (propertyViews.containsKey(NOME)) {
			propertyViews.get(NOME).setPropertyValue(nome);
		}
		
		if (propertyViews.containsKey(CATEGORIA)) {
			propertyViews.get(CATEGORIA).setPropertyValue(categoria);
		}
			
	}

}
